MSA: Urban Honolulu, Hi (Ryan Reiser, Luke Hart, Brody Welch, Mason Shandy)ΒΆ

Our chosen MSA is Honolulu, Hawaii. We decided on Honolulu because of the unique geographic, economic, and cultural setting.

Geographical Significance

Honolulu is a city on the island of Oahu, Hawaii in the Pacific Ocean. It is the capital of and largest city in Hawaii. Honolulu is located on the southeastern coast of the island and is situated between mountains and the ocean, making it a significant strategic hub in the Pacific Ocean.

Economic Significance

As the capital of Hawaii, Honolulu is also the economic center of the state. The city has a diverse economy with siginicant drivers being tourism, military defense, research, and international business and commerce. The most significant of these components is tourism, as Hawaii is a vastly popular vacation destination. Millions of travelers visit every year for the beaches, cultural events and city life. Compared to mainland United States, Hawaii's island isolation also requires most goods to have an increased importation cost, driving up the average cost of living.

Cultural Significance

The culture of Honolulu and Hawaii in general is very rich with a long history. The populous is very diverse with influences from Native Hawaiian, Pacific Islander, and Western cultures. There are a vast number of cultural events and landmarks hosted in Honolulu that hold significance for both the native populous as well as tourists. The diversity of cultures create a unique blend of cuisines, arts, traditions and festivals that create a vibrant and lively culture.

InΒ [5]:
#imports
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import plotly.express as px
import pandas_datareader.data as web
import datetime
import plotly.graph_objects as go

Data Collection & Additional CollectionΒΆ

We have collected data from the following sources:

  • All-Transactions House Price Index for Urban Honolulu, HI (MSA), FRED Database
  • Per Capita Personal Income in Hawai, FRED Database
  • Resident Population in Honolulu County/city HI
  • Unemployment Rate in Urban Honolulu, HI (MSA), FRED Database
  • All-Transactions House Price Index for the United States, FRED Database
  • US Personal income per capita, FRED Database
  • US Unemployment Rate, FRED Database
  • All Employees: Construction in Hawaii, FRED Database
InΒ [7]:
#Housing data, saved as housing_data
start = datetime.datetime(1977, 1, 1)
end = datetime.datetime.now()
index_code = 'ATNHPIUS46520Q' #https://fred.stlouisfed.org/series/ATNHPIUS46520Q
housing_data = web.DataReader(index_code, 'fred', start, end)

#Per Capita Personal Income in Hawaii, saved as income_Hawaii
start = datetime.datetime(1970, 1, 1)
end = datetime.datetime.now()
index_code = 'HIPCPI' #https://fred.stlouisfed.org/series/HIPCPI
income_Hawaii = web.DataReader(index_code, 'fred', start, end)

#Resident Population in Honolulu, saved as population_size
start = datetime.datetime(1970, 1, 1)
end = datetime.datetime.now()
index_code = 'HIHONO7POP' #https://fred.stlouisfed.org/series/HIHONO7POP
population_size = web.DataReader(index_code, 'fred', start, end)

#Unemployment rate in Urban Honolulu, saved as unemployment_rate
start = datetime.datetime(1990, 1, 1)
end = datetime.datetime.now()
index_code = 'HONO115URN' #https://fred.stlouisfed.org/series/HONO115URN
unemployment_rate = web.DataReader(index_code, 'fred', start, end)

#Housing data of USA, saved as us_housing_data
start = datetime.datetime(1975, 1, 1)
end = datetime.datetime.now()
index_code = 'USSTHPI' #https://fred.stlouisfed.org/series/USSTHPI
us_housing_data = web.DataReader(index_code, 'fred', start, end)

#Personal income per capita of USA, saved as us_income
start = datetime.datetime(1930, 1, 1)
end = datetime.datetime.now()
index_code = 'A792RC0A052NBEA' #https://fred.stlouisfed.org/series/A792RC0A052NBEA
us_income = web.DataReader(index_code, 'fred', start, end)

#Unemployment rate of USA, saved as us_unemployment_rate
start = datetime.datetime(1948, 1, 1)
end = datetime.datetime.now()
index_code = 'UNRATE' #https://fred.stlouisfed.org/series/UNRATE
us_unemployment_rate = web.DataReader(index_code, 'fred', start, end)

#Honolulu Construction Employees, saved as construction_employees
start = datetime.datetime(1990, 1, 1)
end = datetime.datetime.now()
index_code = 'SMU15000002023600001SA' #https://fred.stlouisfed.org/series/SMU15000002023600001SA
construction_employees = web.DataReader(index_code, 'fred', start, end)

Data Analysis / VisualizationΒΆ

InΒ [10]:
#Plotting of Hawaii/Honolulu Graphs
#Plotting HPI of Urban Honolulu (1977-Present)
fig = px.line(housing_data, x=housing_data.index, y='ATNHPIUS46520Q', title='HPI of Urban Honolulu Over Time', labels={'index': 'Year', 'ATNHPIUS46520Q': 'Index Value'})
fig.update_layout(xaxis_title='Date')
fig.show()

#Plotting of Per Capita Personal Income in Hawaii (1970-Present)
fig = px.line(income_Hawaii, x=income_Hawaii.index, y='HIPCPI', title='Income in Hawaii Over Time', labels={'index': 'Year', 'HIPCPI': 'Index Value'})
fig.update_layout(xaxis_title='Year', yaxis_title='US Dollars')
fig.show()

#Plotting of Resident Population of Honolulu (1970-Present)
fig = px.line(population_size, x=population_size.index, y='HIHONO7POP', title='Resident Population of Honolulu Over Time', labels={'index': 'Year', 'HIHONO7POP': 'Index Value'})
fig.update_layout(xaxis_title='Year', yaxis_title='Thousands of Persons')
fig.show()

#Plotting of Unemployment Rate in Honolulu (1990-Present)
fig = px.line(unemployment_rate, x=unemployment_rate.index, y='HONO115URN', title='Unemployment Rate in Urban Honolulu Over Time', labels={'index': 'Year', 'HONO115URN': 'Index Value'})
fig.update_layout(xaxis_title='Date', yaxis_title='Percent')
fig.show()

#Plotting of Honolulu Construction Employees (1990-Present)
fig = px.line(construction_employees, x=construction_employees.index, y='SMU15000002023600001SA', title='Honolulu Construction Employees in Hawaii Over Time', labels={'index': 'Year', 'SMU15000002023600001SA': 'Index Value'})
fig.update_layout(xaxis_title='Date', yaxis_title='Thousands of Persons')
fig.show()
InΒ [12]:
#Plotting of USA Graphs
#Plotting of USA HPI (1975-Present)
fig = px.line(us_housing_data, x=us_housing_data.index, y='USSTHPI', title='HPI of USA Over Time', labels={'index': 'Year', 'USSTHPI': 'Index Value'})
fig.update_layout(xaxis_title='Date')
fig.show()

#Plotting of Per Capita Personal Income in USA (1930-Present)
fig = px.line(us_income, x=us_income.index, y='A792RC0A052NBEA', title='Income in USA Over Time', labels={'index': 'Year', 'A792RC0A052NBEA': 'Index Value'})
fig.update_layout(xaxis_title='Date', yaxis_title='US Dollars')
fig.show()

#Plotting of Unemployment Rate in USA (1948-Present)
fig = px.line(us_unemployment_rate, x=us_unemployment_rate.index, y='UNRATE', title='Unemployment Rate in USA Over Time', labels={'index': 'Year', 'UNRATE': 'Index Value'})
fig.update_layout(xaxis_title='Date', yaxis_title='Percent')
fig.show()

Simple plotting of all unaltered collected data to show overall trends. Generally most trends are upward, with the exception of unemployment which is fairly steady overtime (except during 2020).

InΒ [15]:
#Calculating and graphing the Annual Percentage Change for each feature:
#Hawaii and Honolulu Graphs:

#HPI Urban Honolulu (1977-Present):
# Calculate the annual percentage change
housing_data['Annual Percentage Change'] = housing_data['ATNHPIUS46520Q'].pct_change(periods=4) * 100  # Assuming quarterly data
# Plot Annual Percentage Change
fig = px.line(housing_data, x=housing_data.index, y='Annual Percentage Change', title='Urban Honolulu HPI: Annual Percentage Change', labels={'index': 'Year', 'Annual Percentage Change': 'Annual Percentage Change (%)'})
fig.show()

#Per Capita Personal Income in Hawaii (1970-Present):
income_Hawaii['Annual Percentage Change'] = income_Hawaii['HIPCPI'].pct_change(periods=1) * 100  # Assuming yearly data
fig = px.line(income_Hawaii, x=income_Hawaii.index, y='Annual Percentage Change', title='Income in Hawaii: Annual Percentage Change', labels={'index': 'Year', 'Annual Percentage Change': 'Annual Percentage Change (%)'})
fig.show()

#Resident Population of Honolulu (1970-Present):
population_size['Annual Percentage Change'] = population_size['HIHONO7POP'].pct_change(periods=1) * 100  # Assuming yearly data
fig = px.line(population_size, x=population_size.index, y='Annual Percentage Change', title='Honolulu Population: Annual Percentage Change', labels={'index': 'Year', 'Annual Percentage Change': 'Annual Percentage Change (%)'})
fig.show()

#Unemployment Rate in Honolulu (1990-Present):
unemployment_rate['Annual Percentage Change'] = unemployment_rate['HONO115URN'].pct_change(periods=1) * 100  # Assuming yearly data
fig = px.line(unemployment_rate, x=unemployment_rate.index, y='Annual Percentage Change', title='Honolulu Unemployment Rate: Annual Percentage Change', labels={'index': 'Year', 'Annual Percentage Change': 'Annual Percentage Change (%)'})
fig.show()

#Honolulu Construction Employee Amount (1990-Present)
construction_employees['Annual Percentage Change'] = construction_employees['SMU15000002023600001SA'].pct_change(periods=1) * 100  # Assuming yearly data
fig = px.line(construction_employees, x=construction_employees.index, y='Annual Percentage Change', title='Honolulu Construction Employees: Annual Percentage Change', labels={'index': 'Year', 'Annual Percentage Change': 'Annual Percentage Change (%)'})
fig.show()
InΒ [17]:
#Calculating and graphing the Annual Percentage Change for each feature:
#USA Graphs:

#HPI USA (1975-Present):
us_housing_data['Annual Percentage Change'] = us_housing_data['USSTHPI'].pct_change(periods=4) * 100  # Assuming quarterly data
fig = px.line(us_housing_data, x=us_housing_data.index, y='Annual Percentage Change', title='USA HPI: Annual Percentage Change', labels={'index': 'Year', 'Annual Percentage Change': 'Annual Percentage Change (%)'})
fig.show()

#Per Capita Personal Income USA (1930-Present)
us_income['Annual Percentage Change'] = us_income['A792RC0A052NBEA'].pct_change(periods=1) * 100  # Assuming yearly data
fig = px.line(us_income, x=us_income.index, y='Annual Percentage Change', title='Income in USA: Annual Percentage Change', labels={'index': 'Year', 'Annual Percentage Change': 'Annual Percentage Change (%)'})
fig.show()

#Unemploment Rate USA (1948-Present)
us_unemployment_rate['Annual Percentage Change'] = us_unemployment_rate['UNRATE'].pct_change(periods=1) * 100  # Assuming yearly data
fig = px.line(us_unemployment_rate, x=us_unemployment_rate.index, y='Annual Percentage Change', title='USA Unemployment Rate: Annual Percentage Change', labels={'index': 'Year', 'Annual Percentage Change': 'Annual Percentage Change (%)'})
fig.show()

By calculating and plotting annual percentage change for each feature, we can compare them with eachother easier to better find how trends interact. All trends are fairly steady overtime (except during 2020).

InΒ [20]:
#Plotting each Annual Percentage Change feature onto one graph for direct (if a little messy) comparison

#Set the figure size for better visibility
plt.figure(figsize=(12, 8))

#Plotting each Annual Percentage Change feature
sns.lineplot(data=unemployment_rate, x=unemployment_rate.index, y='Annual Percentage Change', label='Honolulu Unemployment Rate: Annual % Change')
sns.lineplot(data=income_Hawaii, x=income_Hawaii.index, y='Annual Percentage Change', label='Honolulu Income: Annual % Change')
sns.lineplot(data=housing_data, x=housing_data.index, y='Annual Percentage Change', label='Honolulu HPI: Annual % Change')
sns.lineplot(data=population_size, x=population_size.index, y='Annual Percentage Change', label='Honolulu Population: Annual % Change')
sns.lineplot(data=us_unemployment_rate, x=us_unemployment_rate.index, y='Annual Percentage Change', label='USA Unemployment Rate: Annual % Change')
sns.lineplot(data=us_income, x=us_income.index, y='Annual Percentage Change', label='USA Income: Annual % Change')
sns.lineplot(data=us_housing_data, x=us_housing_data.index, y='Annual Percentage Change', label='USA HPI: Annual % Change')
sns.lineplot(data=construction_employees, x=construction_employees.index, y='Annual Percentage Change', label='Honolulu Construction Employees: Annual % Change')

#Set the title and axis labels
plt.title('Annual Percentage Change for Honolulu and USA Metrics')
plt.xlabel('Year')
plt.ylabel('Annual Percentage Change (%)')

#Show legend and display the plot
plt.legend(loc='upper right')
plt.show()
No description has been provided for this image

Plotting all annual percentage change features onto one graph for easy (if a little messy) comparability.

InΒ [23]:
#Same as above but adjusted since 2000 to leave out outliers in 1980-1990.
#Also removing Unemployment Rate for readability of other features.

#Start date at 2000
start = datetime.datetime(2000, 1, 1)
end = datetime.datetime.now()

#Fetch Data For all Needed Features
index_code_hpi = 'ATNHPIUS46520Q'
housing_data = web.DataReader(index_code_hpi, 'fred', start, end)
index_code_income_hi = 'HIPCPI'
income_Hawaii = web.DataReader(index_code_income_hi, 'fred', start, end)
index_code_pop = 'HIHONO7POP'
population_size = web.DataReader(index_code_pop, 'fred', start, end)
index_code_hpi_usa = 'USSTHPI'
us_housing_data = web.DataReader(index_code_hpi_usa, 'fred', start, end)
index_code_income_usa = 'A792RC0A052NBEA'
us_income = web.DataReader(index_code_income_usa, 'fred', start, end)
index_code_construction = 'SMU15000002023600001SA'
construction_employees = web.DataReader(index_code_construction, 'fred', start, end)

#Calculate annual percentage change for everything
housing_data['Annual Percentage Change'] = housing_data['ATNHPIUS46520Q'].pct_change(periods=4) * 100
income_Hawaii['Annual Percentage Change'] = income_Hawaii['HIPCPI'].pct_change(periods=1) * 100  
population_size['Annual Percentage Change'] = population_size['HIHONO7POP'].pct_change(periods=1) * 100 
us_housing_data['Annual Percentage Change'] = us_housing_data['USSTHPI'].pct_change(periods=4) * 100
us_income['Annual Percentage Change'] = us_income['A792RC0A052NBEA'].pct_change(periods=1) * 100 
construction_employees['Annual Percentage Change'] = construction_employees['SMU15000002023600001SA'].pct_change(periods=1) * 100

#Plotting size
plt.figure(figsize=(12, 8))

#Plotting each series: Honolulu Income, HPI, Population, USA HPI, USA Income, and Construction Employees
sns.lineplot(data=income_Hawaii, x=income_Hawaii.index, y='Annual Percentage Change', label='Honolulu Income: Annual % Change')
sns.lineplot(data=housing_data, x=housing_data.index, y='Annual Percentage Change', label='Honolulu HPI: Annual % Change')
sns.lineplot(data=population_size, x=population_size.index, y='Annual Percentage Change', label='Honolulu Population: Annual % Change')
sns.lineplot(data=us_housing_data, x=us_housing_data.index, y='Annual Percentage Change', label='USA HPI: Annual % Change')
sns.lineplot(data=us_income, x=us_income.index, y='Annual Percentage Change', label='USA Income: Annual % Change')
sns.lineplot(data=construction_employees, x=construction_employees.index, y='Annual Percentage Change', label='Honolulu Construction Employees: Annual % Change')

#Adding title and axis labels
plt.title('Annual Percentage Change: Honolulu vs USA Metrics (Since 2000)')
plt.xlabel('Year')
plt.ylabel('Annual Percentage Change (%)')

#Show legend and plot
plt.legend(loc='upper right')
plt.show()
No description has been provided for this image

Now that our data is limited to after 2000 and much more readable, we can begin to understand how each feature interacts. Generally we can see that Honolulu and the US average follow similar trends.

InΒ [26]:
#Exact same as above but only for Honolulu data for improved readability

#Start date at 2000
start = datetime.datetime(2000, 1, 1)
end = datetime.datetime.now()

#Fetch Data For all Needed Features
index_code_hpi = 'ATNHPIUS46520Q'
housing_data = web.DataReader(index_code_hpi, 'fred', start, end)
index_code_income_hi = 'HIPCPI'
income_Hawaii = web.DataReader(index_code_income_hi, 'fred', start, end)
index_code_pop = 'HIHONO7POP'
population_size = web.DataReader(index_code_pop, 'fred', start, end)

#Calculate annual percentage change for everything
housing_data['Annual Percentage Change'] = housing_data['ATNHPIUS46520Q'].pct_change(periods=4) * 100
income_Hawaii['Annual Percentage Change'] = income_Hawaii['HIPCPI'].pct_change(periods=1) * 100  
population_size['Annual Percentage Change'] = population_size['HIHONO7POP'].pct_change(periods=1) * 100 

#Plotting size
plt.figure(figsize=(12, 8))

#Plotting each series: Honolulu Income, HPI, Population, USA HPI, USA Income, and Construction Employees
sns.lineplot(data=income_Hawaii, x=income_Hawaii.index, y='Annual Percentage Change', label='Honolulu Income: Annual % Change')
sns.lineplot(data=housing_data, x=housing_data.index, y='Annual Percentage Change', label='Honolulu HPI: Annual % Change')
sns.lineplot(data=population_size, x=population_size.index, y='Annual Percentage Change', label='Honolulu Population: Annual % Change')

#Adding title and axis labels
plt.title('Honolulu Income vs. HPI vs. Population (Since 2000)')
plt.xlabel('Year')
plt.ylabel('Annual Percentage Change (%)')

#Show legend and plot
plt.legend(loc='upper right')
plt.show()
No description has been provided for this image

By limiting our data to only Honolulu, we can see how Honolulu's data interacts. Surprisingly, there does not seem to be too much correlation between each feature.

Hypothesis FormulationΒΆ

Due to Hawaii's unique reliance on the tourism industry to stimulate the economy, we hypothesize that Honolulu's HPI, Personal Income, and Unemployment Rate all experienced more severe negative impacts compared to the national average during the COVID-19 pandemic (2020-2023).

  • As stated in the introduction, Hawaii is uniquely reliant on tourism for economic prosperity. Global travel restrictions and lockdowns essentially negated the tourism industry for upwards of a year. The effects of the pandemic are still being felt to this day.
  • Tourism affects all facets of local industries including hospitality, retail, public transportation, etc. Reduced tourism impacts business revenue and thus reduces employment and economic growth.

We hypothesize that the trends of Per Capita Personal Income in Hawaii will closely follow those of Honolulu's HPI, suggesting a correlation between income levels and the housing market.

  • Income is a universal key driver of housing markets, affordability, and demand. Generally speaking, as income increases so does investment in real estate, thus driving higher HPI.
  • Income and HPI are also indicators of economic health. Positive upward or downward correlations between these two may suggest larger trends in the economy of Honolulu.

We hypothesize that the trends of Hawaii Construction Employment will closely follow those of Honolulu's HPI.

  • Construction is a major supply factor in the housing market. Higher construction employment may suggest more housing construction, and thus more economic development in the market.

Hypothesis Testing and Further Data Analysis/Visualization:ΒΆ

InΒ [34]:
#Testing for Hypothesis #1:

#Data Collection limited 2019-Present
start = datetime.datetime(2019, 1, 1)
end = datetime.datetime.now()

#Housing data for Honolulu
housing_data = web.DataReader('ATNHPIUS46520Q', 'fred', start, end)

#Hawaii income
income_Hawaii = web.DataReader('HIPCPI', 'fred', start, end)

#Unemployment rate for Honolulu
unemployment_rate = web.DataReader('HONO115URN', 'fred', start, end)

#Unemployment rate for USA
us_unemployment_rate = web.DataReader('UNRATE', 'fred', start, end)

#Housing data for USA
us_housing_data = web.DataReader('USSTHPI', 'fred', start, end)

#USA income
us_income = web.DataReader('A792RC0A052NBEA', 'fred', start, end)

#Calculate percentage change for each
housing_data['Percentage Change'] = housing_data['ATNHPIUS46520Q'].pct_change() * 100
income_Hawaii['Percentage Change'] = income_Hawaii['HIPCPI'].pct_change() * 100
unemployment_rate['Percentage Change'] = unemployment_rate['HONO115URN'].pct_change() * 100
us_unemployment_rate['Percentage Change'] = us_unemployment_rate['UNRATE'].pct_change() * 100
us_housing_data['Percentage Change'] = us_housing_data['USSTHPI'].pct_change() * 100
us_income['Percentage Change'] = us_income['A792RC0A052NBEA'].pct_change() * 100

#Plot Income Percent Changes: US vs Hawaii
plt.figure(figsize=(10, 6))
sns.lineplot(data=us_income, x=us_income.index, y='Percentage Change', label='US Income: Percentage Change')
sns.lineplot(data=income_Hawaii, x=income_Hawaii.index, y='Percentage Change', label='Hawaii Income: Percentage Change')
plt.title('US Income vs. Hawaii Income: Percentage Change (2019-Present)')
plt.xlabel('Year')
plt.ylabel('Percentage Change (%)')
plt.legend()
plt.show()

#Plot Housing Index Percent Changes: US vs Honolulu
plt.figure(figsize=(10, 6))
sns.lineplot(data=us_housing_data, x=us_housing_data.index, y='Percentage Change', label='US HPI: Percentage Change')
sns.lineplot(data=housing_data, x=housing_data.index, y='Percentage Change', label='Honolulu HPI: Percentage Change')
plt.title('US HPI vs. Honolulu HPI: Percentage Change (2019-Present)')
plt.xlabel('Year')
plt.ylabel('Percentage Change (%)')
plt.legend()
plt.show()

#Plot Unemployment Rate Percent Changes: US vs Honolulu
plt.figure(figsize=(10, 6))
sns.lineplot(data=us_unemployment_rate, x=us_unemployment_rate.index, y='Percentage Change', label='US Unemployment Rate: Percentage Change')
sns.lineplot(data=unemployment_rate, x=unemployment_rate.index, y='Percentage Change', label='Honolulu Unemployment Rate: Percentage Change')
plt.title('US vs. Honolulu Unemployment Rate: Percentage Change (2019-Present)')
plt.xlabel('Year')
plt.ylabel('Percentage Change (%)')
plt.legend()
plt.show()

#Plot all metrics together: Honolulu vs USA
plt.figure(figsize=(10, 6))
sns.lineplot(data=us_income, x=us_income.index, y='Percentage Change', label='US Income: Percentage Change')
sns.lineplot(data=income_Hawaii, x=income_Hawaii.index, y='Percentage Change', label='Hawaii Income: Percentage Change')
sns.lineplot(data=us_housing_data, x=us_housing_data.index, y='Percentage Change', label='US HPI: Percentage Change')
sns.lineplot(data=housing_data, x=housing_data.index, y='Percentage Change', label='Honolulu HPI: Percentage Change')
sns.lineplot(data=us_unemployment_rate, x=us_unemployment_rate.index, y='Percentage Change', label='US Unemployment Rate: Percentage Change')
sns.lineplot(data=unemployment_rate, x=unemployment_rate.index, y='Percentage Change', label='Honolulu Unemployment Rate: Percentage Change')
plt.title('Honolulu vs USA: Income, HPI, Unemployment Rate (2019-Present)')
plt.xlabel('Year')
plt.ylabel('Percentage Change (%)')
plt.legend()
plt.show()
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image

We can see that Hawaii suffered harsher income dips, HPI dips, and much worse unemployment.

InΒ [37]:
#Testing for Hypothesis #2

#Fetch Per Capita Personal Income in Hawaii (HIPCPI)
start = datetime.datetime(1970, 1, 1)
end = datetime.datetime.now()
income_Hawaii = web.DataReader('HIPCPI', 'fred', start, end)

#Fetch Housing Price Index for Honolulu (ATNHPIUS46520Q)
housing_data = web.DataReader('ATNHPIUS46520Q', 'fred', start, end)

#Graphing: Hawaii Income vs. Honolulu Housing Price Index
plt.figure(figsize=(10, 6))
plt.plot(income_Hawaii.index, income_Hawaii['HIPCPI'], label='Per Capita Personal Income in Hawaii')
plt.plot(housing_data.index, housing_data['ATNHPIUS46520Q'], label='Honolulu Housing Price Index (HPI)')
plt.title('Hawaii Per Capita Personal Income vs. Honolulu HPI (1970-Present)')
plt.xlabel('Year')
plt.ylabel('Index Value')
plt.legend()
plt.show()

#Percent Change Calculations
income_Hawaii['Percentage Change'] = income_Hawaii['HIPCPI'].pct_change() * 100
housing_data['Percentage Change'] = housing_data['ATNHPIUS46520Q'].pct_change() * 100

#Graphing: Percent Change in Income vs. Housing Price Index
plt.figure(figsize=(10, 6))
sns.lineplot(data=income_Hawaii, x=income_Hawaii.index, y='Percentage Change', label='Hawaii Income: % Change')
sns.lineplot(data=housing_data, x=housing_data.index, y='Percentage Change', label='Honolulu HPI: % Change')
plt.title('Hawaii Income % Change vs. Honolulu HPI % Change  (1970-Present)')
plt.xlabel('Year')
plt.ylabel('Percentage Change (%)')
plt.legend()
plt.show()

#Calculate and print correlation
correlation = income_Hawaii['Percentage Change'].corr(housing_data['Percentage Change'])
print(f'Correlation between Hawaii Income % Change and Honolulu HPI % Change: {correlation:.4f}')
No description has been provided for this image
No description has been provided for this image
Correlation between Hawaii Income % Change and Honolulu HPI % Change: 0.0856

We can see that Hawaii's income and Honolulu's HPI is not very correlated in contradiction to our hypothesis.

InΒ [40]:
#Testing for Hypothesis #3

#Fetch Honolulu Construction Employees
start = datetime.datetime(1990, 1, 1)
end = datetime.datetime.now()
construction_employees = web.DataReader('SMU15000002023600001SA', 'fred', start, end)

#Fetch Honolulu Housing Price Index
housing_data = web.DataReader('ATNHPIUS46520Q', 'fred', start, end)

#Graphing Construction Employees vs. Housing Price Index
plt.figure(figsize=(10, 6))
plt.plot(construction_employees.index, construction_employees['SMU15000002023600001SA'], label='Construction Employees')
plt.plot(housing_data.index, housing_data['ATNHPIUS46520Q'], label='Honolulu Housing Price Index (HPI)')
plt.title('Honolulu Construction Employees vs. Housing Price Index (1990-Present)')
plt.xlabel('Year')
plt.ylabel('Index Value')
plt.legend()
plt.show()

#Percent Change Calculations
construction_employees['Percentage Change'] = construction_employees['SMU15000002023600001SA'].pct_change() * 100
housing_data['Percentage Change'] = housing_data['ATNHPIUS46520Q'].pct_change() * 100

#Graphing: Percent Change in Construction Employees vs. Housing Price Index
plt.figure(figsize=(10, 6))
sns.lineplot(data=construction_employees, x=construction_employees.index, y='Percentage Change', label='Construction Employees: % Change')
sns.lineplot(data=housing_data, x=housing_data.index, y='Percentage Change', label='Honolulu HPI: % Change')
plt.title('Honolulu Construction Employees % Change vs. Housing Price Index % Change (1990-Present)')
plt.xlabel('Year')
plt.ylabel('Percentage Change (%)')
plt.legend()
plt.show()

#Calculate and print correlation
correlation = construction_employees['Percentage Change'].corr(housing_data['Percentage Change'])
print(f'Correlation between Construction Employees % Change and Housing Price Index % Change: {correlation:.4f}')
No description has been provided for this image
No description has been provided for this image
Correlation between Construction Employees % Change and Housing Price Index % Change: 0.2010

We can see that Honolulu's income and HPI is not very correlated in contradiction to our hypothesis.

ConclusionsΒΆ

After conducting our hypothesis testing, we can draw the following conclusions:

Hypothesis #1:

Resulting from our analysis comparing Honolulu's HPI, Per Capita Personal Income, and Unemployment to those of the American average, we can observe visual trends in the percent change graphs suggesting that Honolulu did suffer harsher personal income and HPI decreases from the effects of the pandemic than the US average. Specifically, Honolulu suffered over 4x more unemployment than the US average. This disparity is likely due to Hawaii's heavy reliance on tourism, which was significantly disrupted by global travel restrictions and lockdowns during the pandemic.

Hypothesis #2:

Upon examining the relationship between Honolulu's HPI and Per Capita Personal Income, we found virtually no correlation, with a calculated percent change correlation of 0.0856. This lack of correlation is unexpected, as we hypothesized that changes in personal income would directly influence the housing market. This lack of trend is particularly strange as this relationship has been proven in many other markets, suggesting that Honolulu may be a particularly unique housing market. This also suggests that there are other factors influencing the HPI in Honolulu that are not included in our analysis. Upon future analysis we would try to expand on the lack of relationship here and try to understand the factors that differentiate this market from others.

Hypothesis #3:

Our analysis of the relationship between Honolulu's HPI and its construction employment levels revealed a weak correlation, with a percent change correlation of 0.2013. This finding is also unexpected, as it is generally expected that construction activity would impact the housing market. The reasoning behind this may be the lack of geographical space in Honolulu. Given the fact that this is an island landmass, there is a finite amount of buildable land that may be close to depleted. Upon further research we would look into the quantity of habitable land remaining in the Honolulu and/or wider Hawaii region to understand any limitations it may present in the housing market.